瞭解媒體錯誤和錯誤區塊
當儲存體系統無法順利讀取區塊時,會傳回媒體錯誤回應給主機。系統對主機讀取的回應應遵循此行為。
系統會從受管理磁碟 (MDisk) 上的延伸範圍來配置磁區。MDisk 可以是外部儲存體控制器上的磁區,或是從內部磁碟機建立的 RAID 陣列。無論哪種情況,視您使用的 RAID 層次而定,通常都可防止單一磁碟機上發生讀取錯誤。不過,如果有多個磁碟機發生錯誤,或是因其他問題而造成磁碟機重建或離線,讀取要求還是有可能發生媒體錯誤。
系統提供了一些移轉工具,可用於將磁區從一組底層實體儲存體移至另一組底層實體儲存體,或者抄寫使用 Metro Mirror 或 Global Mirror 的磁區。在所有的這些情況下,當讀取原始磁區上的邏輯區塊位址時,已移轉磁區或抄寫的磁區都會傳回媒體錯誤給主機。系統會維護錯誤區塊表格,以記下無法讀取的邏輯區塊位址是出現在何處。這些表格與提供儲存體給磁區的 MDisk 相關聯。
可使用 dumpmdiskbadblocks 指令和 dumpallmdiskbadblocks
指令,來查詢錯誤區塊的位置。
重要: dumpmdiskbadblocks 會輸出已產生的虛擬媒體錯誤,它不是 MDisk 或磁碟機上的實際媒體錯誤清單。
用來記錄錯誤區塊位置的表格有可能填滿。表格中可填入一個 MDisk 或整個系統。如果表格已填滿,造成錯誤區塊的移轉或抄寫就會失敗,因為無法建立來源磁區的確切映像檔。
在下列狀況下,系統會在事件日誌中建立警示:
表 1 列出錯誤區塊的錯誤碼。
| 錯誤碼 | 說明 |
|---|---|
| 1840 | 受管理磁碟具有錯誤區塊。在外部控制器上,此錯誤必須是複製媒體錯誤。 |
| 1226 | 系統無法建立錯誤區塊,因為 MDisk 已達容許的錯誤區塊數目上限。 |
| 1225 | 系統無法建立錯誤區塊,因為系統已達容許的錯誤區塊數目上限。 |
針對這些警示的建議動作會指引您更正此狀況。
藉由取消配置磁區的磁碟延伸範圍、刪除磁區,或是對區塊發出寫入 I/O,來清除錯誤區塊。較好的做法是一偵測到錯誤區塊,就立即更正。這個動作可在抄寫或移轉磁區時,阻止傳播錯誤區塊。不過,錯誤區塊有可能是應用程式未用到之磁區的一部分。例如,它可能是未起始設定之資料庫中的一部分。當應用程式將資料寫入至這些區域時,會更正這些錯誤區塊。在進行更正之前,錯誤區塊記錄仍繼續佔用可用的錯誤區塊空間。